interface Message {
	tbname: string;
	[field: string]: string | number | Im
}

export interface Im {
	reg?: RegExp;				// 正则
	like?: string;				// like模糊查询
	not_null?: '';				// 不为null
	gt?: number;				// 大于
	gte?: number;				// 大于等于
	lt?: number;				// 小于
	lte?: number;				// 小于等于
	neq?: string | number;		// 不等于
	in?: string | number[];		// in操作符
	nin?: string | number[];	// nin操作符
}

/**
 * 
 * @param query 
 * @param msg 
 * @description 添加查询条件，TODO
 */
/**export default */ async function atom(query: any, msg: Message[]) {
	if (msg.length === 0) {
		return;
	}
	msg.forEach((m) => {
		if (JSON.stringify(m) === '{}') {
			return;
		} else if (!m.tbname) {
			return;
		} else {
			const tbname = m.tbname;
			for (const f in m) {
				if (typeof m[f] !== 'object' && f !== 'tbname') {
					query.where_eq(tbname, f, m[f]);
				} else {
					for (const flag in (m[f] as Im)) {
						if (flag === 'reg') {
							query.where_reg(tbname, f, m[f][flag]);
						} else if (flag === 'like') {
							query.where_like(tbname, f, m[f][flag]);
						}
						// TODO
					}
				}
			}
		}
	});

}